回到目錄

09-Adversarial Attack

1. How to attack?

要把 network 用在真正應用上光是正確率高是不夠的,還需要能夠應付來自人類的惡意,在有人試圖想要欺騙它的情況下,也得到高的正確率。e.g. 垃圾郵件分類

一張照片可以被看作是一個非常長的向量,在每一個維度都加入一個小小的雜訊,通常都小到肉眼看不出來,attacked image 丟到 network 裡面,輸出不可以是貓,要變成其他的東西

  • Benign Image:原始照片
  • Attacked Image:被攻擊(加入雜訊)的照片

1.1 Non-targeted & Targeted

此外,期望加入雜訊後的圖片 xx 要與原始圖片 x0x^0 越接近越好,所以會加入 d(x0,x)ϵd(x^0,x)≤\epsilon 的限制,讓兩張圖片的差距小於等於人類感知的極限

如何計算 d(x0,x)ϵd(x^0,x)≤\epsilon

  1. L2-norm
  1. L-infinity

選擇哪一種計算方式要根據 domain knowledge

1.2 白箱攻擊 & 黑箱攻擊

1.2.1 白箱攻擊

本質上,就是解一個優化問題:x=arg mind(x0,x)ϵL(x)x^*=arg\ \min\limits_{d(x^0,x)\le\epsilon}L(x)

暫不考慮 d(x0,x)ϵd(x^0,x)\le\epsilon 的限制:

可以使用梯度下降方法實現。這裡需要優化的是圖片而不是網路模型的參數

初始化從 x0x^0 開始,因為希望新找到的 xx 要跟 x0x^0 越接近越好,隨後進行迭代,求偏微分更新圖片 xx

加入 d(x0,x)ϵd(x^0,x)\le\epsilon 限制:

xtx^tx0x^0 的差距大於 ε,就做一個修改xtx^t 改回符合限制

假設使用 L-Infinity 方法,根據限制,xtx^t 只可以存在方框的範圍。當更新 xtx^t 後卻跑出方框,利用 xtx^t ← fix(xt)fix(x^t) 修正回限制內

FGSM(Fast Gradient Sign Method):

只更新參數一次,對梯度 gg 每一維度使用 sign()sign() 函數,保證其為 ±\pm1,並將 learning rate 設成 ϵ\epsilon,更新一次參數後,其值會變到正方形四個點之一

Iterative FGSM

迭代版的 FGSM,更新不只一次參數,迭代過程中若超出限制則利用 xtx^t ← fix(xt)fix(x^t) 修正回限制內

1.2.2 黑箱攻擊

線上服務的模型,一般來說都不知道模型的參數

訓練一個 proxy network 來模仿被攻擊的對象。如果 proxy network 跟要被攻擊的對象有一定程度的相似的話,若拿 attacked image 對 proxy network 進行攻擊有效果,那麼拿去丟到不知道參數的 network 上攻擊一般來說也會成功

兩種狀況:

  1. 有辦法取得 black network 的訓練資料:以此資料訓練 proxy network,如此它們就有一定程度的相似度
  1. 沒辦法取得 black network 的訓練資料:對 black network 輸入資料得到輸出,再把輸入輸出的成對資料作為訓練資料拿去訓練模型,當做 proxy network 進行攻擊

舉例:

對角線是白箱攻擊的部分,成功率是百分之百,也就是模型的正確率是 0 %

非對角線是黑箱攻擊,比如拿 ResNet-152 當做是 proxy network,去攻擊 ResNet-50,得到的正確率是 18 %

column 代表要被攻擊的 network,每一個 row 是 5 個模型都集合起來,但拿掉對應的模型,對角線屬於黑箱攻擊,使用除了該行以外的其他四種模型聚合得到的模型進行攻擊

當找一個 attacked image 可以成功騙過多個 network,要騙過一個不知道參數的 black network 也非常容易成功

1.3 攻擊如此簡單的原因

一張圖片是一個非常高維的向量,把這個高維向量往橫軸方向移動,和往縱軸方向移動

根據 Delving into transferable adversarial examples and black-box attacks 這篇論文的研究發現,深藍色的區域是可以被辨識成小丑魚的範圍,可以看出:

有不只一篇論文表示攻擊會如此容易成功,原因可能是出現在資料上而不是模型上。在有限的資料上,機器學到的就是這樣子的結論,當我們有足夠的資料,也許就有機會避免 adversarial attack,可參考論文:Adversarial Example Are Not Bugs,They Are Features

2. Attacked Cases

2.1 One pixel attack

只動了圖片中的一個 pixel,影像辨識系統的判斷就產生錯誤

2.2 Universal Adversarial Attack

只用一種 attacked signal 就成功攻擊所有的圖片,無需對每一張圖片進行客制化處理

2.3 Speech Processing:偵測一段聲音是否是被合成出來的

一段顯然的合成聲音訊號加上這個微小的雜訊以後,同一個偵測合成的系統會覺得剛才那段聲音是真實的聲音,而不是合成的聲音

2.4 Natural Language Processing:控制 QA 结果

在所有文章末尾加上 “Why How Because To Kill American People” 這段文字,接下來不管問機器什麼問題,它的答案都是 “To Kill American People”

2.5 真實世界的攻擊

2.5.1 人臉識別

戴上一副特殊眼鏡後導致辨識錯誤

可參考:https://www.cs.cmu.edu/~sbhagava/papers/face-rec-ccs16.pdf

2.5.2 號誌辨識

在交通號誌上貼上貼紙導致辨識錯誤

2.6 Adversarial Reprogramming

讓一個模型完成訓練任務之外的工作,如論文 Adversarial Reprogramming of Neural Networks 利用圖像識別的系統進行數方格,將方格圖片嵌入到噪聲中

2.7 “Backdoor” in Model(在模型訓練時攻擊)

Poison Frogs! Targeted Clean-Label Poisoning Attacks on Neural Networks 這篇論文在訓練資料中加一些人看起來沒有問題,但對模型會有問題的資料。訓練完成後,模型就如同開了一個 “backdoor”,在測試階段只對某一張圖片辨識錯誤,而對其他圖片表現正常

3. Defense

3.1 被動防禦

在不改變模型的情況下,在模型前面加 filter 以削減 attack signal 的威力。例如把圖片稍微做一點模糊化,就可以達到的防禦效果

解釋

attack signal 其實只有某一個方向上的某一種攻擊的訊號才能夠成功,並不是隨便 sample 一個 noise 都可以攻擊成功

副作用:

confidence 分數會下降,圖片變模糊機器會比較不確定它看到圖片是甚麼

3.1.1 其他方法

3.1.2 弱點

可以把模糊化想成是 network 的第一層,攻擊者只需多加這一層放到攻擊的過程中,就可以產生一個 attacked signal 可以躲過模糊化這種防禦方式,所以一旦被知道採用哪種防禦方法,可能就沒有防禦的效果了

3.1.3 隨機(Randomization)

使用隨機的方式選擇防禦的方法,改變的方式不能被別人知道

問題:

如果有人知道本身隨機的 distribution ,還是有可能攻破這種防禦的方式

3.2 主動防禦

Adversarial Training(Data Augmentation)會在每一輪訓練中,對每張訓練圖片找到被攻擊的圖片 x~\tilde{x},對這些圖片標上正確的 label y~\tilde{y} 後一起放入模型進行訓練,讓模型知道被攻擊過的圖片的真正 label

此方法也可以增加模型的 robostic 能力,也可以利用 adversarial training 的方法強化模型,避免 overfitting 的狀況

問題: